<?php
include_once('relatorios'.bar.'relatorios.php');
class vendas_lucro_bruto extends relatorios {

    function vendas_lucro_bruto (){
	
		parent::__construct();
		
		$this->hbox_data->show_all();
		$this->hbox_button->show_all();
		
		$this->label_combo1->show();
		$this->label_combo1->set_text("Ordenar por ");
		
		$this->orderby["m.descricao"]="Mercadoria";
		$this->orderby["lucro"]="Lucro";
		
		$this->combo1->show();
		// coloca arrays na combobox 
		foreach ($this->orderby as $tmp){
			$this->combo1->append_text($tmp);
		}
		// bota o primeiro como escolha atual 
		$this->combo1->set_active(0);	

		$this->hbox_radiobutton->show_all();
    	$this->radiobutton1->set_label("Todas Mercadorias");
    	$this->radiobutton2->set_label("Mercadorias com custo MAIOR que zero");
    	$this->radiobutton2->set_active(TRUE);
    	$this->radiobutton3->set_label("Mercadorias com custo IGUAL a zero");
    	$this->radiobutton4->hide();
    	$this->radiobutton5->hide();
    	$this->radiobutton6->hide();
		
		$this->button_html->connect_simple('clicked',array($this, 'gerar'),'html');
		$this->button_texto->connect_simple('clicked',array($this, 'gerar'),'texto');
		$this->button_tela->connect_simple('clicked',array($this, 'gerar'),'tela');
	}
	
	function gerar($tipo){
		if(!$this->valida_data($this->entry_data1->get_text())){
            msg('Data Inicial Invalida');
            return false;
        }
        $this->data1=$this->corrigeNumero($this->entry_data1->get_text(),"dataiso");
        
        if(!$this->valida_data($this->entry_data2->get_text())){
            msg('Data Final Invalida');
            return false;
        }
        $this->data2=$this->corrigeNumero($this->entry_data2->get_text(),"dataiso");
		$con=$this->conecta();
		
		$sql="SELECT m.codmerc, m.descricao,  sum(e.quantidade) AS quant, sum(e.precocusto*e.quantidade) AS precocustototal, sum(e.precocomdesconto*e.quantidade) AS precovendatotal, sum((e.precocomdesconto*e.quantidade)-(e.precocusto*e.quantidade)) AS lucro  FROM entsai AS e INNER JOIN saidas AS s ON (e.codentsai=s.codsaidas) INNER JOIN mercadorias AS m ON (m.codmerc=e.codmerc) WHERE e.tipo='S' AND s.data>='$this->data1' AND s.data<='$this->data2' ";
		if($this->radiobutton1->get_active()){
			// todas mercadorias
						
		}elseif($this->radiobutton2->get_active()){
			// mercadorias com custo maior que zero
			$sql.=" AND e.precocusto>0 ";
		}elseif($this->radiobutton2->get_active()){
			// mercadorias com custo igual a zero
			$sql.=" AND e.precocusto=0 ";
		}
		// agrupamento por mercadoria
		$sql.=" GROUP BY m.codmerc, m.descricao ";

		// pega qual a escolha da combobox de orderby
		$order=$this->combo1->get_active_text();
		// pega o nome do campo da array criada na funcao anterior
		$key=array_search($order, $this->orderby);
		
		$sql.=" ORDER BY ".$key;
		
    	if(!$resultado=$con->Query($sql)){
			msg("Erro ao executar comando SQL");
			return;
		}
		
		$numerolin=$con->NumRows($resultado);
		if($numerolin==0){
			msg("Sua consulta nao retornou nenhum resultado!");
			return;
		}
    	
		$titulo="Relatorio de Lucro Bruto";
		$cabeca[0]="Periodo: ".$this->entry_data1->get_text()." a ".$this->entry_data2->get_text();
		
		$cabtabela[0]="Cod.Merc.";
		$cabtabela[1]="Mercadoria";
		$cabtabela[2]="Quant.";
		$cabtabela[3]="Custo";
		$cabtabela[4]="Venda";
		$cabtabela[5]="Lucro";
		
		$total_custo=0;
		$total_venda=0;
		$total_lucro=0;
		$j=0;
		while($i = $con->FetchRow($resultado)) {
            $corpo[$j][0]=$i[0];
            $corpo[$j][1]=$i[1];
            $corpo[$j][2]=$i[2];
            $corpo[$j][3]=$this->corrigeNumero($i[3],'virgula');
            $corpo[$j][4]=$this->corrigeNumero($i[4],'virgula');
            $corpo[$j][5]=$this->corrigeNumero($i[5],'virgula');
	        // soma totais
	        $total_custo+=$i[3];
			$total_venda+=$i[4];
			$total_lucro+=$i[5];     
            // controla linha
            $j++;
        }

        
        $pe[0]="Totais:";
        $pe[1]='Custo: '.$this->corrigeNumero($total_custo,'moeda');
        $pe[2]='Venda: '.$this->corrigeNumero($total_venda,'moeda');
        $pe[3]='Lucro: '.$this->corrigeNumero($total_lucro,'moeda');


		if($tipo=="html"){
			$this->geraHTML($titulo, $cabeca, $cabtabela, $corpo, $pe, true);
		}elseif($tipo=="texto"){
			$this->geraTEXTO($titulo, $cabeca, $cabtabela, $corpo, $pe, true);
		}elseif($tipo=="tela"){
			$this->geraTELA($titulo, $cabeca, $cabtabela, $corpo, $pe, true);
		}
        $this->disconecta($this->con);
		
		msg("Relatorio gerado com sucesso!");
	}
}

?>